# 作者: 陈其志
# 2025年02月17日21时07分32秒
# 2716847110@qq.com

def use_cal():
    """
    算术运算符
    :return:
    """
    result = 5 // 2
    print(result)
    result = 5 % 2
    print(result)
    print(10 ** 3)  # ** 是幂次运算


def use_logic():
    """
    使用逻辑运算符
    :return:
    """
    print(3 and 5)  # 都真返回后一个
    print(3 or 5)   # 都真返回前一个
    print(0 or 3)
    print(3 and 0)
    # 逻辑与短路运算
    a = 500
    a > 5 and print('a大于5')
    if None:
        print('None')
    # 逻辑或短路运算
    b = 1
    b == 1 or print("这句话不会打印")  # or 前面为真后，后面就不会执行
    b == 2 or print("This world will be print")


def use_bit():
    """
    位运算只用于整形
    :return:
    """
    print(5 & 7)
    print(5 | 7)
    print(5 >> 1)   # 右移运算符，低位丢弃，正数高位补0，负数高位补1 右移是除以2，负数是减1再除二
    print(5 << 1)   # 左移运算符，效果类似于乘以2
    print(9 >> 1)  # 9的二进制表示为1001，右移一位后为100，即5
    print(9 << 1)  # 9的二进制表示为1001，左移一位后为10010，即18
    print(-9 >> 1)  # -9的二进制是1110 1111，右移一位后为1111 1110，即-6
    print(-9 << 1)  # -9的二进制是1110 1111，左移一位后为1 1101 1110，即-18
    # 异或    满足交换律
    print(5 ^ 7)    # 相同为0，不同为1
    print(5 ^ 7 ^ 5)    # 等于 5 ^ 5 ^ 7
    # 取反


# use_cal()
# use_logic()
use_bit()